﻿<template>
	<div class="car_color-container">
		<el-dialog v-model="isShowDialog" :title="props.title" :width="700" draggable="">
			<el-form :model="ruleForm" ref="ruleFormRef" size="default" label-width="100px" :rules="rules">
				<el-row :gutter="35">
					<el-form-item v-show="false">
						<el-input v-model="ruleForm.id" />
					</el-form-item>
					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
						<el-form-item label="系列" prop="pid">
							<el-select clearable filterable v-model="ruleForm.pid" placeholder="请选择系列">
								<el-option v-for="(item, index) in car_colorPidDropdown" :key="index"
									:value="item.value" :label="item.label" />
							</el-select>
						</el-form-item>
					</el-col>

					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
						<el-form-item label="颜色名" prop="title">
							<el-input v-model="ruleForm.title" placeholder="请输入颜色名" clearable />

						</el-form-item>

					</el-col>
					
             <!-- 25 .5 .15 新加 -->
			 <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
								<el-form-item label="质感" prop="zhiganId">
									<el-select style="width: 100%;" multiple clearable filterable
										v-model="ruleForm.zhiganList"  tagType="success"  placeholder="请选择质感">
										<el-option v-for="(item, index) in car_zhiganDropdownList" :key="index"
											:value="item.value" :label="item.label" />
									</el-select>
								</el-form-item>
							</el-col>

							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
								<el-form-item label="色系" prop="xilieSubId">
									<el-select style="width: 100%;"  multiple clearable filterable
										v-model="ruleForm.colorList" tagType="success" placeholder="请选择颜色">
										<el-option v-for="(item, index) in car_color2DropdownList" :key="index"
											:value="item.value" :label="item.label" />
									</el-select>
								</el-form-item>
							</el-col>

							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
								<el-form-item label="风格" prop="sexiId">
									<el-select style="width: 100%;" multiple clearable filterable
										v-model="ruleForm.sexiList" tagType="success"   placeholder="请选择色系">
										<el-option v-for="(item, index) in car_SeXiDropdownList" :key="index"
											:value="item.value" :label="item.label" />
									</el-select>

								</el-form-item>

							</el-col>

  <!-- 25.5.15 end -->
					 
				</el-row>
			</el-form>
			<template #footer>
				<span class="dialog-footer">
					<el-button @click="cancel" size="default">取 消</el-button>
					<el-button type="primary" @click="submit" size="default">确 定</el-button>
				</span>
			</template>
		</el-dialog>
	</div>
</template>

<script lang="ts" setup>
import { ref, onMounted } from "vue";
import { ElMessage } from "element-plus";
import type { FormRules } from "element-plus";
import { getcar_zhiganDropdown } from '/@/api/main/car_case';
import { getcar_SeXiDropdown } from '/@/api/main/car_case';
import { getcar_color2Dropdown } from '/@/api/main/car_case';
import { addcar_tag, updatecar_tag, car_tagPidDropdown } from "/@/api/main/car_tag";
var typeenum = 3;

//父级传递来的参数
var props = defineProps({
	title: {
		type: String,
		default: "",
	},
});
//父级传递来的函数，用于回调
const emit = defineEmits(["reloadTable"]);
const ruleFormRef = ref();
const isShowDialog = ref(false);
const ruleForm = ref<any>({});
//自行添加其他规则
const rules = ref<FormRules>({
});

// 打开弹窗
const openDialog = (row: any) => {
	ruleForm.value = JSON.parse(JSON.stringify(row));
	isShowDialog.value = true;
};

// 关闭弹窗
const closeDialog = () => {
	emit("reloadTable");
	isShowDialog.value = false;
};

// 取消
const cancel = () => {
	isShowDialog.value = false;
};

// 提交
const submit = async () => {
	ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
		if (isValid) {

			if(ruleForm.value.pid && ruleForm.value.pid.length=="")
	 {
		ruleForm.value.pid=0
	 }

			 
			ruleForm.value.type = typeenum
			let values = ruleForm.value;
			if (ruleForm.value.id != undefined && ruleForm.value.id > 0) {
				await updatecar_tag(values);
				getcar_colorPidrDropdownList();
			} else {
				await addcar_tag(values);
				getcar_colorPidrDropdownList();
			}
			closeDialog();
		} else {
			ElMessage({
				message: `表单有${Object.keys(fields).length}处验证失败，请修改后再提交`,
				type: "error",
			});
		}
	});
};

const car_colorPidDropdown = ref<any>([]);
const getcar_colorPidrDropdownList = async () => {
	let list = await car_tagPidDropdown({type:typeenum,pid:0});
	car_colorPidDropdown.value = list.data.result ?? [];
};
getcar_colorPidrDropdownList();

const car_zhiganDropdownList = ref<any>([]);
const getcar_zhiganDropdownList = async () => {
	let list = await getcar_zhiganDropdown();
	car_zhiganDropdownList.value = list.data.result ?? [];
};
getcar_zhiganDropdownList();

const car_color2DropdownList = ref<any>([]);
const getcar_color2DropdownList = async () => {
	let list = await getcar_color2Dropdown();
	car_color2DropdownList.value = list.data.result ?? [];
};
getcar_color2DropdownList();

const car_SeXiDropdownList = ref<any>([]);
const getcar_SeXiDropdownList = async () => {
	let list = await getcar_SeXiDropdown();
	car_SeXiDropdownList.value = list.data.result ?? [];
};
getcar_SeXiDropdownList();

// 页面加载时
onMounted(async () => {
});

//将属性或者函数暴露给父组件
defineExpose({ openDialog });
</script>
